import axios from "axios";

// 创建 axios 实例
const requests = axios.create({
  baseURL: "http://localhost:3000", // baseURL: 'http://168.192.0.123',
  //   baseURL: process.env.VUE_APP_API, // 基础url,如果是多环境配置这样写，也可以像下面一行的写死。
  timeout: 6000, // 请求超时时间
});

// 请求拦截

// request interceptor
requests.interceptors.request.use(
  (config) => {
    // 取出token赋值
    const token = localStorage.getItem("tokens");
    if (token) {
      // let each request carry token
      // ['X-CSRF-TOKEN'] is a custom headers key
      // please modify it according to the actual situation
      config.headers["X-CSRF-TOKEN"] = token;
    }
    return config;
  },
  (error) => {
    // do something with request error
    console.log(error); // for debug
    return Promise.reject(error);
  }
);

// 响应拦截

// 响应拦截器
requests.interceptors.response.use(
  (response) => {
    //如果接口返回token，替换本地旧token
    if (response.headers.token) {
      localStorage.setItem("token", response.headers.token);
    }
    //自定义设置后台返回code对应的响应方式
    // response.data.code == 200
    if (response.status == 200) {
      // 如果有数据就抛出数据
      return response;
    } else {
      //接口正常，返回数据
      return response;
    }
  },
  (error) => {
    if (error.message) {
      // this.$massage.error('服务器开小差了，请稍后再试!')
      //错误响应
      alert("服务器开小差了，请稍后再试!");
    }
    return Promise.reject(error);
  }
);

// 到处axios的请求
export default { requests };
